package br.com.item;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.hibernate.Session;

import br.com.dao.DAOFactory;
import br.com.dao.ItemDAO;
import br.com.exception.DadosInvalidosException;
import br.com.exception.SemItemEstoqueException;
import br.com.exception.Validacoes;
import br.com.negocio.ItemService;
import br.com.util.HibernateUtil;

public class ItemFaixada {
	
	private static ItemFaixada instancia = null;
	
	public ItemFaixada(){
		
	}
	
	public Item criarItem(Double valorCompra, int qtdEstoque, String descricao, String marca, Double precoVenda) throws DadosInvalidosException{
		
		if(!Validacoes.verificaString(descricao)){
			throw new DadosInvalidosException();
		}
		
		if(!Validacoes.verificaString(marca)){
			throw new DadosInvalidosException();
		}
		
		if(!Validacoes.verificaDouble(valorCompra)){
			throw new DadosInvalidosException();
		}
		
		if(!Validacoes.verificaDouble(precoVenda)){
			throw new DadosInvalidosException();
		}
		
		Item i = new Item();
		
		i.setDescricao(descricao);
		i.setMarca(marca);
		i.setPrecoVenda(precoVenda);
		i.setQtdEstoque(qtdEstoque);
		i.setValorCompra(valorCompra);
		
		return i;
	
	}
	
	
	public static ItemFaixada getInstancia(){
		if (instancia == null){
			instancia = new ItemFaixada();
		}
		
		return instancia;
	}
	
	
	
	public void adicionarItem(Item item){
		
		new ItemService().salvar(item);
		
	}
	
	
	public void excluirItem(Item item){
		
		new ItemService().excluir(item);
		
	}
	

	public ArrayList<Item> buscarTodosItens(){

		ArrayList<Item> a = new ItemService().listarTodos();
		
		return a;
	}
	
	
	public ArrayList<Item> buscarItensDescricao(String descricao){
		return new ItemService().consultaLike(descricao);
	}
	
	public Item buscarItemCodigo(int codigo){
		
		
		Item i = new ItemService().pesquisarPorId(codigo);
		
		return i;
	}
	
}
